﻿//=============================================================================
//【 FontManagerBase 】
//-----------------------------------------------------------------------------
///**
//  @file       FontManagerBase.h
//  @brief      FontManagerBase
//  @author     Riki
//*/
//=============================================================================

#pragma once

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
#include "../Interface.h"

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
namespace LNote
{
namespace Core
{
namespace Graphics
{

//=============================================================================
// ■ FontManagerBase クラス
//-----------------------------------------------------------------------------
///**
//  @brief     
//*/
//=============================================================================
class FontManagerBase
    : public Base::ReferenceObject
{
public:

    /// コンストラクタ
    FontManagerBase();

    /// デストラクタ
    virtual ~FontManagerBase();

    LN_REFOBJ_METHODS;

public:

    /// 初期化
    void initialize();

    /// 終了処理
    virtual void finalize();

    /// フォントの作成 (フォント名が NULL の場合はデフォルトの設定で作成する)
    virtual IFont* createFont( const lnChar* fontname_ );

    /// デフォルトのフォントをセットする
    void setDefaultFont( IFont* font_ );

    /// デフォルトのフォントを取得する
    IFont* getDefaultFont();

public:

    /// フォントファイルを追加する (ttf)
    virtual void addFontFile( const lnChar* fontname_ ) = 0;

    /// フォント作成
    virtual IFont* createFont() = 0;

private:

    IFont*  mDefaultFont;
};

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------

} // namespace Graphics
} // namespace Core

} // namespace LNote

//=============================================================================
//
//=============================================================================